Random testing of a higher-order blockchain language (experience report)
نویسندگان
چکیده
We describe our experience of using property-based testing---an approach for automatically generating random inputs to check executable program specifications---in a development higher-order smart contract language that powers state-of-the-art blockchain with thousands active daily users. outline the process integrating QuickChick---a framework testing built on top Coq proof assistant---into real-world implementation in OCaml. discuss challenges we have encountered when well-typed programs realistic language, which mixes purely functional and imperative computations features runtime resource accounting. set properties tested, as well semantic harness required enable their validation. The range from standard type safety soundness control- type-flow analysis used by optimizing compiler. Finally, present list bugs discovered rediscovered help QuickChick severity possible ramifications.
منابع مشابه
Higher order mutation testing
This paper introduces a new paradigm for Mutation Testing, which we call Higher Order Mutation Testing (HOM Testing). Traditional Mutation Testing considers only first order mutants, created by the injection of a single fault. Often these first order mutants denote trivial faults that are easily killed. Higher order mutants are created by the insertion of two or more faults. The paper introduce...
متن کاملTesting Higher Order Functions
Automatic testing of first order functions works fine. Testing higher order functions automatically is more troublesome, it is harder to generate the functions needed as argument automatically, and these generated functions cannot be shown when a counterexample is found. Nevertheless, higher order functions can contain errors and hence need to be tested. In this paper we present effective and e...
متن کاملSemantics of a Higher-Order Coordination Language
A distributed program can be viewed as a composition of three parts Firstly there is a coordination part which provides a hierar chical structure of components with dynamic binding Secondly there is the actual communication part which provides the interaction and syn chronisation required by the system Finally there is the computation part providing the component programs Darwin is a language f...
متن کاملHOPLA-A Higher-Order Process Language
A small but powerful language for higher-order nondeterministic processes is introduced. Its roots in a linear domain theory for concurrency are sketched though for the most part it lends itself to a more operational account. The language can be viewed as an extension of the lambda calculus with a “prefixed sum”, in which types express the form of computation path of which a process is capable....
متن کاملHigher-Order Uncertainty About Language∗
It has been frequently noted that successful language use depends on the interlocutors’ higher-order beliefs. David Lewis [21], for example, informally introduces common knowledge as part of his account of language as a convention. We, instead, formally model and study the effects of higher-order uncertainty about language. We find that in common-interest communication games higher-order uncert...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2022
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3547653